/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Reportes;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;
import javax.swing.JFrame;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
/**
 *
 * @author miguel
 */
public class Reportes {
    Connection conn=null;
    private String archivo="";
    private Vector vector=null;
    
    public Reportes(String file, Vector v)
    {
        archivo = file;
        vector = new Vector();
        vector = v;
        try
        {
            Class.forName("com.mysql.jdbc.Driver"); //se carga el driver
            conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/fid","root","123456");
            //JOptionPane.showMessageDialog(null,"Conexiónestablecida");
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }

    public void mostrarReporte()
    {
        try
        {
            String file = "src/Reportes/"+archivo;
            System.out.println("Cargando desde: " + file);
            if(archivo == null)
            {
                System.out.println("No se encuentra el archivo.");
                System.exit(2);
            }
            
            JasperReport masterReport= null;
            try
            {
                masterReport= (JasperReport) JRLoader.loadObject(file);
            }
            catch (JRException e)
            {
                System.out.println("Error cargando el reporte maestro: " + e.getMessage());
                System.exit(3);
            }            //este es el parámetro, se pueden agregar más parámetros
            //basta con poner mas parametro.put
            Map parametro= new HashMap();
            int n = vector.size();
            for(int i=0; i<n; i++)
            {
                parametro.put(String.valueOf(vector.get(i)), String.valueOf(vector.get(i+1)));
                i++;
            }

            // Creamos el Frame en el cual se mostrará el programa
            JFrame jframe = new JFrame();
            JasperPrint jasperPrint= JasperFillManager.fillReport(masterReport,parametro,conn);
            frmReporte a = new frmReporte(jasperPrint);
            jframe.add(a);
            jframe.setSize(850,600);
            jframe.setLocationRelativeTo(null);
            jframe.setDefaultCloseOperation(jframe.DISPOSE_ON_CLOSE);
            jframe.setTitle("Reporte Trabajadores");
            jframe.setVisible(true);
            cerrar();
        }
        catch (Exception j)
        {
            System.out.println("Mensaje de Error:"+j.getMessage());
        }
    }

    public void cerrar()
    {
        try
        {
            conn.close();
        }catch(SQLException ex)
        {
            ex.printStackTrace();
        }
    }
}
